/*
* Classe che rappresente un allenamento.
*/
package contapassi.prova2;
 
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Random;
 
 
public class Allenamento {
   
        private int ID;
    private String nome;                            // nome dell'allenamento
    private Calendar data_e_ora;                        // data e ora dell'allenamento
    private double distanza;                        // distanza totale percorsa nell'allenamento
    private int passi;                              // passi totali compiuti nell'allenamento
    private double vel_media;                  // velocità media tenuta durante tutto l'allenamento ( espressa in km/h )
    private double passo_medio;                     // passo medio tenuto durante tutto l'allenamento ( espresso in minuti/km )
   
    // dati da aggiornare in tempo reale
    private double vel_media_ultimiXmetri;    // velocità media tenuta negli ultimi x metri ( espressa in km/h )
    private double passo_medio_ultimiXmetri;    // passo medio tenuto negli ultimi x metri ( espresso in minuti/km )
    private double ultimiXmetri;                    // parametro usato per calcolare velocità_media_ultimiXmetri e passo_medio_ultimiXmetri
   
    // il costruttore dell'allenamento
    public Allenamento()
    {
            // inizializza i campi dell'allenamento
            nome=new String();
            ultimiXmetri=0;
            data_e_ora=new GregorianCalendar();
            distanza=vel_media=passo_medio=vel_media_ultimiXmetri=passo_medio_ultimiXmetri=passi=ID=0;
    }
 
   
    // tutti i metodi per settare i paramentri
        public void setID(int id)
    {
        ID=id;
    }
           
    public void setNome(String n)
    {
        nome=n;
    }
   
       
    public void setData(int anno, int mese, int giorno, int ore, int minuti)
    {
        data_e_ora.set(anno, mese, giorno, ore, minuti);
        }
   
    public void setDistanza(double dist)
    {
        distanza=dist;
    }
   
    public void setPassi(int p)
    {
        passi=p;
    }
   
    public void setVel_media(double vm)
    {
        vel_media=vm;
    }
   
    public void setPasso_medio(double pm)
    {
        passo_medio=pm;
    }
   
    public void setVel_media_ultimiXmetri(double vmUltimiXmetri)
    {
        vel_media_ultimiXmetri=vmUltimiXmetri;
    }
   
    public void setPasso_medio_ultimiXmetri(double pmUltimiXmetri)
    {
        passo_medio_ultimiXmetri=pmUltimiXmetri;
    }
   
    public void setUltimiXmetri(double u)
    {
        ultimiXmetri=u;
    }
   
        // i metodi per estrarre i valori dei campi di un allenamento
    public int getID()
    {
        return ID;
    }
       
    public String getNome()
    {
        return nome;   
    }
 
       
    public Calendar getData()
    {
        return data_e_ora;
    }
   
    public double getDistanza()
    {
        return distanza;
    }
   
    public int getPassi()
    {
        return passi;
    }
   
    public double getVel_media()
    {
        return vel_media;
    }
   
    public double getPasso_medio()
    {
        return passo_medio;
    }
   
    public double getVel_media_ultimiXmetri()
    {
        return vel_media_ultimiXmetri;
    }
   
    public double getPasso_medio_ultimiXmetri()
    {
        return passo_medio_ultimiXmetri;
    }
   
    public double getUltimiXmetri()
    {
        return ultimiXmetri;
    }
       
        // metodo per generare un id casuale
        public void generaID(ListaAllenamentiManager listaAllenamenti)
        {
            int id=0;
            boolean stop=false;
       
            Random r=new Random();
           
            if( listaAllenamenti.isEmpty())
                id=1;
            else
                while(!stop)
                {
                    id = 1 + r.nextInt(1+listaAllenamenti.getSize());
                    stop=true;
 
                    for(int i=0;i<listaAllenamenti.getSize();i++)
                    {
                        if(listaAllenamenti.getAllenamentoIndex(i).getID() == id)
                        stop=false;
                    }
                }
            ID=id;
        }
       
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //  DA CANCELLARE
        // setta un allenamento di prova
        public void SettaAllenamentoProva()
        {
            ID=1;
            nome="Allenamento Prova";
            data_e_ora.set(2011, 7, 25 , 18, 40);
            passi=8000;
            distanza=7456;
            passo_medio=8;
            passo_medio_ultimiXmetri=7;
            ultimiXmetri=100;
            vel_media=11.4;
            vel_media_ultimiXmetri=10.4;
        }
       
       
        //  DA CANCELLARE
        // visualizza un allenamento
        public void StampaAllenamento()
        {
            System.out.println(ID);
            System.out.println(nome);
            System.out.println(data_e_ora.get(Calendar.DAY_OF_MONTH) + "/" + data_e_ora.get(Calendar.MONTH) + "/" + data_e_ora.get(Calendar.YEAR) + " - " + data_e_ora.get(Calendar.HOUR) + ":" + data_e_ora.get(Calendar.MINUTE));
            System.out.println(passi);
            System.out.println(distanza);
            System.out.println(passo_medio);
            System.out.println(passo_medio_ultimiXmetri);
            System.out.println(ultimiXmetri);
            System.out.println(vel_media);
            System.out.println(vel_media_ultimiXmetri);
              
        }
   
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
}